﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SeguroSoft.Models;

namespace SeguroSoft.Tests.Fakes
{
    class FakeRepositorioServicioTecnico:IRepositorioServicioTecnico
    {
        private List<ServicioTecnico> listaServicioTecnico;

        public FakeRepositorioServicioTecnico(List<ServicioTecnico> lista)
        {
            listaServicioTecnico = lista;
        }

        public void EliminarServicioTecnico(ServicioTecnico servicioTecnico)
        {
            listaServicioTecnico.Remove(servicioTecnico);
        }

        public IQueryable<ServicioTecnico> EncontrarServicioTecnicoPorAño(string año)
        {
            return (from servicioTecnico in listaServicioTecnico
                    where servicioTecnico.Año.Equals(año)
                    select servicioTecnico).AsQueryable();
        }

        public IQueryable<ServicioTecnico> EncontrarServicioTecnicoPorKilometraje(string km)
        {
            return (from servicioTecnico in listaServicioTecnico
                    where servicioTecnico.Km.Equals(km)
                    select servicioTecnico).AsQueryable();
        }

        public IQueryable<ServicioTecnico> EncontrarServicioTecnicoPorMarca(string marca)
        {
            return (from servicioTecnico in listaServicioTecnico
                    where servicioTecnico.Marca.Equals(marca)
                    select servicioTecnico).AsQueryable();
        }

        public IQueryable<ServicioTecnico> EncontrarServicioTecnicoPorModelo(string modelo)
        {
            return (from servicioTecnico in listaServicioTecnico
                    where servicioTecnico.Modelo.Equals(modelo)
                    select servicioTecnico).AsQueryable();
        }

        public IQueryable<ServicioTecnico> EncontrarServicioTecnicoPorTipoBencina(string tipoBencina)
        {
            return (from servicioTecnico in listaServicioTecnico
                    where servicioTecnico.TipoBencina.Equals(tipoBencina)
                    select servicioTecnico).AsQueryable();
        }

        public IQueryable<ServicioTecnico> EncontrarServicioTecnicoPorMotor(string motor)
        {
            return (from servicioTecnico in listaServicioTecnico
                    where servicioTecnico.Motor.Equals(motor)
                    select servicioTecnico).AsQueryable();
        }

        public IQueryable<ServicioTecnico> EncontrarTodosServiciosTecnicos()
        {
            return listaServicioTecnico.AsQueryable();
        }

        public void Guardar()
        {
            
        }

        public ServicioTecnico ObtenerServicioTecnico(int id)
        {
            return (from servicioTecnico in listaServicioTecnico
                    where servicioTecnico.IDServicioTecnico == id
                    select servicioTecnico).ElementAt(0);
        }
    }
}
